Traditional distributed computer systems have limited users to alphanumeric and simple graphics communications (collectively referred to herein as "textual communications"), even though voice, video and even musical media frequently are more efficient and effective for interpersonal communications. Others have recognized the need to extend such systems sufficiently to support non-textual communications as an alternative or supplement to textual communications. For example, substantial effort and expense have been devoted to the development of voice message systems, as well as to the development of multi-media systems for annotating text with voice. Voice is the non-textual communication medium that has been most widely investigated for use in distributed computer systems, so this invention will be described in that context to provide a representative example. Nevertheless, it will be understood that the broader aspects of this invention are also applicable to other types of data intensive, non-textual communications in distributed computing systems.
Several interesting and potentially important advantages flow from treating voice and other non-textual media as data in a distributed computing environment. See Nicholson, "Integrating Voice in the Office World," Byte, Vol. 8, No. 12, December 1983, pp. 177-184. It enables non-textual media to be incorporated easily into electronic mail messages, and into annotations applied to ordinary text files, as well as into prompts and other interactive messages provided by the user interface to the computing environment. In short, such a treatment permits users to create, manipulate and share these non-textual data files in much the same way as they handle conventional test files, and enables programmers to implement functions having such non-textual data files in generally the same way as they implement functions involving text files.
However, voice and other non-textual data files differ significantly from ordinary textual data files. For example, classical workstations cannot record or play voice data files in analog form, so special devices are needed for that purpose. Even more significantly, voice data files typically are much larger than text files containing the identical words. Indeed, the recording of standard telephone quality, uncompacted voice consumes roughly 64K bits of storage per second, which is several orders of magnitude greater than the storage capacity required for an equivalent passage of types test. Still another factor to be taken into account is that there are stringent real time requirements on transferring voice because unintended pauses or chopping of words during the playback of voice creates a perceptual problem that may interfere with or even defeat the effort to communicate.
Users of distributed computer systems sometimes reside in heterogeneous computing environments having diverse network services implemented through the use of different communication protocols. Moreover, traffic between such computing environments may be routed through a variety of common or private carriers which conceivably may involve different path switching schemes. Gateways have been developed for exchanging textual message traffic between heterogeneous environments, so the value and use of non-textual communications in such systems may depend in significant part on the ease with which non-textual communications may be transferred through such gateways.
Others have addressed some of the issues that need to be resolved to carry out voice and similar non-textual communications in distributed computing environments. The Sydis Information Manager utilizes special workstations (called "VoiceStations") for recording, editing and playing back voice. See Nicholson, "Integrating Voice in the Office World," Byte, Vol. 8, No. 12, December 1983, pp. 177-184. Additionally, a system for integrating voice and data for simple workstation applications has been described. See Ruiz, "Voice and Telephone Applications for the Office Workstation," Proceedings 1st International Conference on Computer Workstations, San Jose, Ca., November 1985, pp. 158-163. Speech storage systems having facilities for recording, editing and playing back voice have been proposed. See Maxemchuck, "An Experimental Speech Storage and Editing Facility," Bell System Technical Journal, Vol. 58, No. 9, October 1980, pp. 1383-1395.
Even more to the point, there are the systems that enable users to share documents containing embedded references to non-textual media objects residing on a shared file service and for "garbage collecting" those objets to reclaim the storage space allocated to them when there no longer are any documents or document folders containing references to them. See Thomas et al., "Diamond: A Multimedia Message System Built on a Distributed Architecture," Computer, Vol. 18, No. 12, December 1985, pp. 65-78. Systems, such as the Diamond Systems, which employ textually embedded references to refer to voice, video and other diverse types of non-textual data sometimes are referred to as "hypermedia systems." See Yankelovich et al., "Reading and Writing the Electronic Book," Computer, Vol. 18, No. 10, October 1985, pp. 15-30. Unlike most of the other systems that have been proposed, the embedded references used by the Diamond system avoid the need to include copies of the non-textual data files (i.e., voice files) in each document file with which they are associated. However, the simple reference count based garbage collection scheme of the Diamond System is incompatible with permitting references to internally stored objects to be included in documents or document folders that are stored outside the system.
Interesting prior art relating to the garbage collection of ordinary data files also has been uncovered. The Cambridge File Server requires clients to take an explicit action to prevent files from being garbage collected, because it automatically deletes files that are not accessible from client updated and server maintained indices. See Mitchell et al., "A Comparison of Two Network-Based File Servers," Communications of the ACM, Vol. 25, No. 4, April 1982, pp. 233-245. Somewhat less relevant, but still interesting as an example of how to build a highly reliable reference server is the system described in Liskov et al., "Highly-Available Distributed Services and Fault Tolerant Distributed Garbage Collection," Proceedings of Symposium on Principles of Distributed Computing, Alberta, Canada, August 1986, pp. 29-39. The garbage collection scheme they envision requires all sites that store references to remotely stored, shared objects to run a garbage collector locally for purposes of sending information about distributed references to a common reference server.
At least two issues still have to be resolved. In view of the very large size of most non-textual data files (e.g., voice data files), it is important that a technique be developed for editing those files through the use of simple databases, without requiring that the files be moved, copied, or decrypted (if they are stored in encrypted form), and for describing the results of the editing operations. Also, an improved technique is needed for using simple databases to support a garbage collector for automatically reclaiming storage space allocated to obsolete non-textual data files. The management and editing of hypermedia is addressed in our concurrently filed, copending and commonly assigned U.S. patent application of Swinehart et al, which was filed under Ser. No. 07/118,492 on a "Server Based Facility for Managing and Editing Embedded References in Hypermedia Systems," (D/87278), so this application is directed to the garbage collection issue.